﻿using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics; 

namespace Ivory
{
    public abstract class Screenbase : GameComponent {
        

        //Fields
        public ScreenManager Manager;

        //Construct
        public Screenbase(Game game) : base(game) {

        }

        //Methods
        /// <summary>
        /// DO NOT USE!
        /// </summary> 
        public abstract void drawScreen(SpriteBatch batch, GameTime time);

        /// <summary>
        /// Loads objects during the load screen
        /// </summary> 
        public abstract void loadScreen();

        /// <summary>
        /// Preloads content into the game, this is done when the game is launched
        /// </summary>
        /// <param name="content"></param>
        public abstract void preLoad();

        /// <summary>
        /// DO NOT USE!
        /// </summary> 
        public abstract void updateScreen(GameTime time, InputControl input);
        
        /// <summary>
        /// Use as a Subsitute for Game.Content.Load(...)
        /// </summary>
        public T Load<T>(string path)
        {
            return Game.Content.Load<T>(path);
        }
    }
}
